package win.zxshuo.www.schedule;

import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import win.zxshuo.www.utils.SystemUtils;

import javax.annotation.Resource;

@Component
public class HourScheduler {
    Log log = LogFactory.getLog(getClass());


    @Resource
    SchedulerMethods schedulerMethods;



    /**
     * 每天运行一次的定时器,定时在0点
     */
    @Scheduled(cron = "0 0 0 */1 * *")
    public void runEveryDayAtZero(){
        Integer numOfCore = SystemUtils.getCoreNum();
        if (numOfCore >3){
            schedulerMethods.spideBooksForUpdate();
            System.out.println("结束了书籍更新");
        }

    }


    /**
     * 每天运行一次的定时器,定时在1点
     */
    @Scheduled(cron = "0 0 1 */1 * *")
    public void runEveryDayAtOne(){
        schedulerMethods.spiderQidianRanks();
    }

    /**
     * 每天运行一次的定时器,定时在2点
     */
    @Scheduled(cron = "0 0 2 */1 * *")
    public void runEveryDayAtTwo(){

    }

    /**
     * 每天运行一次的定时器,定时在3点
     */
    @Scheduled(cron = "0 0 3 */1 * *")
    public void runEveryDayAtThree(){

    }

    /**
     * 每天运行一次的定时器,定时在4点
     */
    @Scheduled(cron = "0 0 4 */1 * *")
    public void runEveryDayAtFour(){

    }

    /**
     * 每天运行一次的定时器,定时在5点
     */
    @Scheduled(cron = "0 0 5 */1 * *")
    public void runEveryDayAtFive(){

    }

    /**
     * 每天运行一次的定时器,定时在6点
     */
    @Scheduled(cron = "0 0 6 */1 * *")
    public void runEveryDayAtSix(){

    }

    /**
     * 每天运行一次的定时器,定时在7点
     */
    @Scheduled(cron = "0 0 7 */1 * *")
    public void runEveryDayAtSeven(){

    }

    /**
     * 每天运行一次的定时器,定时在8点
     */
    @Scheduled(cron = "0 0 8 */1 * *")
    public void runEveryDayAtEight(){

    }

    /**
     * 每天运行一次的定时器,定时在9点
     */
    @Scheduled(cron = "0 0 9 */1 * *")
    public void runEveryDayAtNine(){

    }

    /**
     * 每天运行一次的定时器,定时在10点
     */
    @Scheduled(cron = "0 0 10 */1 * *")
    public void runEveryDayAtTen(){

    }

    /**
     * 每天运行一次的定时器,定时在11点
     */
    @Scheduled(cron = "0 0 11 */1 * *")
    public void runEveryDayAtEleven(){

    }

    /**
     * 每天运行一次的定时器,定时在12点
     */
    @Scheduled(cron = "0 0 12 */1 * *")
    public void runEveryDayAtTwelve(){

    }

    /**
     * 每天运行一次的定时器,定时在13点
     */
    @Scheduled(cron = "0 0 13 */1 * *")
    public void runEveryDayAtThirteen(){

    }

    /**
     * 每天运行一次的定时器,定时在14点
     */
    @Scheduled(cron = "0 0 14 */1 * *")
    public void runEveryDayAtFourteen(){

    }

    /**
     * 每天运行一次的定时器,定时在15点
     */
    @Scheduled(cron = "0 0 15 */1 * *")
    public void runEveryDayAtFifteen(){

    }

    /**
     * 每天运行一次的定时器,定时在16点
     */
    @Scheduled(cron = "0 0 16 */1 * *")
    public void runEveryDayAtSixteen(){
        schedulerMethods.spiderQidianRanks();
        System.out.println("在16点执行的定时器");
    }

    /**
     * 每天运行一次的定时器,定时在17点
     */
    @Scheduled(cron = "0 0 17 */1 * *")
    public void runEveryDayAtSeventeen(){
        Integer numOfCore = SystemUtils.getCoreNum();
        if (numOfCore >3){
            schedulerMethods.spideBooksForUpdate();
            System.out.println("结束了书籍更新");
        }
    }

    /**
     * 每天运行一次的定时器,定时在18点
     */
    @Scheduled(cron = "0 0 18 */1 * *")
    public void runEveryDayAtEighteen(){

    }

    /**
     * 每天运行一次的定时器,定时在19点
     */
    @Scheduled(cron = "0 0 19 */1 * *")
    public void runEveryDayAtNineteen(){

    }

    /**
     * 每天运行一次的定时器,定时在20点
     */
    @Scheduled(cron = "0 0 20 */1 * *")
    public void runEveryDayAtTwenty(){

    }

    /**
     * 每天运行一次的定时器,定时在21点
     */
    @Scheduled(cron = "0 0 21 */1 * *")
    public void runEveryDayAtTwentyOne(){

    }

    /**
     * 每天运行一次的定时器,定时在22点
     */
    @Scheduled(cron = "0 0 22 */1 * *")
    public void runEveryDayAtTwentyTwo(){

    }

    /**
     * 每天运行一次的定时器,定时在23点
     */
    @Scheduled(cron = "0 0 23 */1 * *")
    public void runEveryDayAtTwentyThree(){
        schedulerMethods.spiderQidianRanks();
        System.out.println("在16点执行的定时器");
    }

}
